/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ManagedBeans;

import ComponenteDatos.UsuarioFacadeLocal;
import ComponenteEntidad.Empleado;
import ComponenteEntidad.Usuario;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.faces.application.ConfigurableNavigationHandler;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 *
 * @author ANTHONY
 */
@ManagedBean
@ViewScoped
public class ManagedBeanSessionando implements Serializable{
    @EJB
    private UsuarioFacadeLocal usuarioFacade;
    private Usuario objetoUsuario;
    private Empleado objetoEmpleado;
private boolean stado=false;
    public ManagedBeanSessionando() {
        objetoUsuario = new Usuario();
        objetoUsuario.setUsuLogin("");
        objetoUsuario.setUsuPassword("");
        objetoEmpleado = new Empleado();

    }
public boolean getStado(){
    return stado;
}
    public Usuario getObjetoUsuario() {
        return objetoUsuario;
    }

    public void setObjetoUsuario(Usuario objetoUsuario) {
        this.objetoUsuario = objetoUsuario;
    }

    public Empleado getObjetoEmpleado() {
        return objetoEmpleado;
    }

    public void setObjetoEmpleado(Empleado objetoEmpleado) {
        this.objetoEmpleado = objetoEmpleado;
    }

    public String login() {
        try {
            for (Usuario user : usuarioFacade.findAll()) {
                if (user != null) {
                    if ((user.getUsuPassword().equalsIgnoreCase(objetoUsuario.getUsuPassword())) && user.getUsuLogin().equalsIgnoreCase(objetoUsuario.getUsuLogin())) {
                        objetoUsuario = user;
                        objetoEmpleado = user.getEmpleado();
                        System.out.print("dfsfsdfdsfsf");
                        return "/ventas/index.jsf?faces-redirect=true";
                    }
                } else {
                    FacesMessage msg = new FacesMessage("Informacion", "No hay Usuarios en la Base de Datos");
                    FacesContext.getCurrentInstance().addMessage(null, msg);
                    objetoUsuario.setUsuLogin("");
                    objetoUsuario.setUsuPassword("");
                }
            }
            
          

        } catch (Exception e) {
            FacesMessage msg = new FacesMessage("Informacion", "Hubo errores al Iniciar Sesion: " + e);
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
        FacesMessage msg = new FacesMessage("Informacion", "Datos Incorrectas");
        FacesContext.getCurrentInstance().addMessage(null, msg);
        objetoUsuario.setUsuPassword("");
        objetoUsuario.setUsuLogin("");
        return "index";
    }
    
    public String loegando(ManagedBeanIniciosesion obj) {
        try {
            // System.out.println(objetoUsuario.getUsuLogin()+"vs"+ objetoUsuario.getUsuPassword());
            for (Usuario user : usuarioFacade.findAll()) {
                if (user != null) {
                    if ((user.getUsuPassword().equalsIgnoreCase(objetoUsuario.getUsuPassword())) && user.getUsuLogin().equalsIgnoreCase(objetoUsuario.getUsuLogin())) {
                        objetoUsuario = user;
                        objetoEmpleado = user.getEmpleado();
                        obj.setObjetoEmpleado(user.getEmpleado());
                        obj.setObjetoUsuario(user);
                       // System.out.print("dfsfsdfdsfsf");
                        // si es correcto
                       // return "/ventas/index.jsf?faces-redirect=true";
                       // objetoUsuario.setUsuLogin("");
                      //  objetoUsuario.setUsuPassword("");
                         FacesMessage msg = new FacesMessage("ESTIMADO USUARIO GRACIAS POR LOGEARSE");
                    FacesContext.getCurrentInstance().addMessage(null, msg);
                    stado=true;
                    return "targetpage";
                      //  return 1;
                    }
                } else {
                    FacesMessage msg = new FacesMessage("Informacion", "No hay Usuarios en la Base de Datos");
                    FacesContext.getCurrentInstance().addMessage(null, msg);
                   // objetoUsuario.setUsuLogin("");
                   // objetoUsuario.setUsuPassword("");
                  //  return 0;
                    stado=false;
                    return "targetpage";
                }
            }
          } catch (Exception e) {
             // objetoUsuario.setUsuLogin("");
            //  objetoUsuario.setUsuPassword("");
            FacesMessage msg = new FacesMessage("Informacion", "Hubo errores al Iniciar Sesion: " + e);
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
        FacesMessage msg = new FacesMessage("Informacion", "Datos Incorrectas");
        FacesContext.getCurrentInstance().addMessage(null, msg);
      //  objetoUsuario.setUsuPassword("");
       // objetoUsuario.setUsuLogin("");
       // return 0;
        stado=false;
        
        return "targetpage";
    }
    
    
     public void loegandovoid(ManagedBeanIniciosesion obj) {
        try {
            stado=false;
            // System.out.println(objetoUsuario.getUsuLogin()+"vs"+ objetoUsuario.getUsuPassword());
            for (Usuario user : usuarioFacade.findAll()) {
                if (user != null) {
                    if ((user.getUsuPassword().equalsIgnoreCase(objetoUsuario.getUsuPassword())) && user.getUsuLogin().equalsIgnoreCase(objetoUsuario.getUsuLogin())) {
                        objetoUsuario = user;
                        objetoEmpleado = user.getEmpleado();
                        obj.setObjetoEmpleado(user.getEmpleado());
                        obj.setObjetoUsuario(user);
                       // System.out.print("dfsfsdfdsfsf");
                        // si es correcto
                       // return "/ventas/index.jsf?faces-redirect=true";
                       // objetoUsuario.setUsuLogin("");
                      //  objetoUsuario.setUsuPassword("");
                         FacesMessage msg = new FacesMessage("ESTIMADO USUARIO GRACIAS POR LOGEARSE");
                    FacesContext.getCurrentInstance().addMessage(null, msg);
                    stado=true;
                   // return "targetpage";
                      //  return 1;
                    }
                } else {
                    FacesMessage msg = new FacesMessage("Informacion", "No hay Usuarios en la Base de Datos");
                    FacesContext.getCurrentInstance().addMessage(null, msg);
                   // objetoUsuario.setUsuLogin("");
                   // objetoUsuario.setUsuPassword("");
                  //  return 0;
                    stado=false;
                 //   return "targetpage";
                }
            }
          } catch (Exception e) {
             // objetoUsuario.setUsuLogin("");
            //  objetoUsuario.setUsuPassword("");
            FacesMessage msg = new FacesMessage("Informacion", "Hubo errores al Iniciar Sesion: " + e);
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
      //  FacesMessage msg = new FacesMessage("Informacion", "Datos Incorrectas");
    //    FacesContext.getCurrentInstance().addMessage(null, msg);
      //  objetoUsuario.setUsuPassword("");
       // objetoUsuario.setUsuLogin("");
       // return 0;
      //  stado=false;
        
    //    return "targetpage";
    }
    public String getId_usuario(){
        // System.out.println("entro xd");
        // System.out.println(objetoEmpleado.getIdEmpleado());
        if(objetoEmpleado!=null && objetoEmpleado.getIdEmpleado() !=null){
            return objetoEmpleado.getIdEmpleado().toString();
        }
         return null;
    }
    
    public String ruta(int datos) {

        // System.out.println("entro !"+datos );
        if(datos<1){
             objetoEmpleado= new Empleado();
        }
       
       final FacesContext context = FacesContext.getCurrentInstance();
         // System.out.println(context.getExternalContext().getRequestContextPath());
         
    return context.getExternalContext().getRequestContextPath();
     
    
}
    public void resetando(){
        objetoUsuario = new Usuario();
        objetoUsuario.setUsuLogin("");
        objetoUsuario.setUsuPassword("");
        objetoEmpleado = new Empleado();
       // System.out.println("yeah !!!");
        
        }
    
   public void checkAuthorization(ComponentSystemEvent evt){
       // System.out.println("yuryto"+objetoEmpleado);
  FacesContext ctx = FacesContext.getCurrentInstance();
  ConfigurableNavigationHandler nav = (ConfigurableNavigationHandler)ctx.getApplication().getNavigationHandler();

  // navigate to login-screen
  if(this.objetoEmpleado.getIdEmpleado()==null){ 
      // System.out.println("RESTEA");
   nav.performNavigation("../index.jsf?faces-redirect=true");
  } else {
      // System.out.println("SE QUEDA");
  // nav.performNavigation("welcome");
  }
}
   public int getId_(){
        final FacesContext context = FacesContext.getCurrentInstance();
     
      final HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
      final HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
      return session.getId().toString().length();
   }
   
   private boolean executed;

public String action() {
    executed = true;
    return "targetpage";
}

public boolean isExecuted() {
    return executed;
}
}
